package com.cheer.ba.view.activity;

import android.view.View;

//import com.amap.api.location.AMapLocation;
//import com.amap.api.location.AMapLocationClient;
//import com.amap.api.location.AMapLocationClientOption;
//import com.amap.api.location.AMapLocationListener;
//import com.amap.api.maps.AMap;
//import com.amap.api.maps.CameraUpdateFactory;
//import com.amap.api.maps.LocationSource;
//import com.amap.api.maps.MapView;
//import com.amap.api.maps.UiSettings;
//import com.amap.api.maps.model.BitmapDescriptorFactory;
//import com.amap.api.maps.model.LatLng;
//import com.amap.api.maps.model.Marker;
//import com.amap.api.maps.model.MarkerOptions;
//import com.amap.api.maps.model.MyLocationStyle;
//import com.amap.api.maps.model.animation.Animation;
//import com.amap.api.maps.model.animation.ScaleAnimation;
import com.cheer.ba.view.base.BaseCommAty;

/**
 * 地图
 *
 * @author HQ
 *         created at 2017/4/26 0026 17:05
 */
public class MapAty extends BaseCommAty {
//        implements AMap.OnMapLoadedListener, LocationSource, AMapLocationListener, AMap.OnMarkerClickListener, AMap.OnInfoWindowClickListener, AMap.InfoWindowAdapter {

    View mRootView;

    //地图控件
//    private MapView mMapView;
//
//    //地图控制器对象
//    private AMap mAmap;
//
//    //定位监听
//    private OnLocationChangedListener mLocationListener;
//
//    private AMapLocationClient mLocationClient;
//    private AMapLocationClientOption mLocationOption;
//
//    //地位蓝点样式
//    private MyLocationStyle myLocationStyle;
//
//    //存储marker
//    private ArrayList<MarkerOptions> markerOptionlsts = new ArrayList<MarkerOptions>();
//
//    //存储油站信息
//    private List<MapModel> mSaveOilInfos = new ArrayList<MapModel>();
//
//    //存储图片标记对象
//    private List<Marker> markers = new ArrayList<Marker>();
//
//    //记录纬度
//    private double mRecordLat;
//
//    //记录经度
//    private double mRecordLong;
//
//    //记录地址
//    private String mRecordAddress;
//
//    @Override
//    protected boolean isSupportSwipeback() {
//        return false;
//    }
//
//    @Override
//    public boolean hasDataInPage() {
//        return true;
//    }
//
//    @Override
//    protected void onCreate(@Nullable Bundle savedInstanceState) {
//        super.onCreate(savedInstanceState);
//        setContentView(R.layout.aty_map);
//        mRootView = findViewById(R.id.id_root_view);
//        mMapView = (MapView) findViewById(R.id.id_map);
//        //在activity执行onCreate时执行mMapView.onCreate(savedInstanceState)，创建地图
//        mMapView.onCreate(savedInstanceState);
//        init();
//    }
//
//    @Override
//    public void initPresenter() {
//        presenter = new MapPresenter();
//    }
//
//    /**
//     * 初始化地图控制对象
//     */
//    private void init() {
//        if (null == mAmap) {
//            mAmap = mMapView.getMap();
//            setUpMap();
//        }
//    }
//
//    //设置map的一些属性
//    private void setUpMap() {
//        //地图控件交互
//        UiSettings mUiSetting = mAmap.getUiSettings();
//        //设置默认定位按钮是否显示，非必需设置。
//        mUiSetting.setMyLocationButtonEnabled(true);
//        //控制地图缩放按钮的显示
////        mUiSetting.setZoomControlsEnabled();
//        //设置缩放按钮的位置
////        mUiSetting.setZoomPosition();
//        //获取缩放按钮的位置
////        mUiSetting.getZoomPosition();
//        //控制指南针是否显示
//        mUiSetting.setCompassEnabled(true);
//        //控制地图比例尺是否显示
//        mUiSetting.setScaleControlsEnabled(true);
//        //控制高德地图logo显示的位置
////        mUiSetting.setLogoPosition();
//        //设置为true表示启动显示定位蓝点，false表示隐藏定位蓝点并不进行定位，默认是false。
//        mAmap.setMyLocationEnabled(true);
//        //设置希望展示的地图的缩放级别,分3级到21，数字越大越精细
//        mAmap.moveCamera(CameraUpdateFactory.zoomTo(15));
//        setUpLocationStyle();
//        //地图加载成功时间
//        mAmap.setOnMapLoadedListener(this);
//        //设置定位监听
//        mAmap.setLocationSource(this);
//        //设置点击marker事件监听器
//        mAmap.setOnMarkerClickListener(this);
//        //设置点击infoWindow事件监听器
//        mAmap.setOnInfoWindowClickListener(this);
//        //设置自定义InfoWindow样式
//        mAmap.setInfoWindowAdapter(this);
//    }
//
//    /**
//     * 设置自定义定位蓝点
//     */
//    private void setUpLocationStyle() {
//        //初始化定位蓝点样式类
//        myLocationStyle = new MyLocationStyle();
//        //连续定位、且将视角移动到地图中心点，定位点依照设备方向旋转，并且会跟随设备移动。（1秒1次定位）如果不设置myLocationType，默认也会执行此种模式。
//        myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATE);
//        //设置连续定位模式下的定位间隔，只在连续定位模式下生效，单次定位模式下不会生效。单位为毫秒。
////        myLocationStyle.interval(2000);
//        // 自定义定位蓝点图标
////        myLocationStyle.myLocationIcon(BitmapDescriptorFactory.fromResource(R.drawable.gps_point));
//        //设置定位蓝点精度圆圈的边框颜色的方法。
//        myLocationStyle.strokeColor(R.color.color_e69216);
//        //设置定位蓝点精度圈的边框宽度的方法。
//        myLocationStyle.strokeWidth(5);
//        //设置定位蓝点精度圆圈的填充颜色的方法。
//        myLocationStyle.radiusFillColor(R.color.color_e69216);
//        //设置定位蓝点的Style
//        mAmap.setMyLocationStyle(myLocationStyle);
//    }
//
//    @Override
//    public <T> void updateView(T t) {
//        if (null != t) {
//            mSaveOilInfos.clear();
//            List<MapModel> maps = (List<MapModel>) t;
//            mSaveOilInfos.addAll(maps);
//            markers.clear();
//            markerOptionlsts.clear();
//            for (MapModel model : maps) {
//                MarkerOptions mOptions = new MarkerOptions();
//                LatLng latLng = new LatLng(model.getLatitude(), model.getLongitude());
//                mOptions.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_ORANGE));
//                mOptions.position(latLng);
//                mOptions.title(model.getTitle());
//                mOptions.snippet("姓名：" + model.getName() + "\n" + "电话：" + model.getPhone() + "\n" + "地址：" + model.getAddress());
//                mOptions.alpha((float) model.getAlpha());
////                mOptions.visible(model.isVisible());
////                mOptions.draggable(model.isDraggable());
//                //设置Marker覆盖物是否平贴地图。
////                mOptions.setFlat(true);
//                markerOptionlsts.add(mOptions);
//            }
//            if (!markerOptionlsts.isEmpty()) {
//                markers.addAll(mAmap.addMarkers(markerOptionlsts, true));
//            }
//        }
//    }
//
//    @Override
//    protected void onResume() {
//        super.onResume();
//        mMapView.onResume();
//    }
//
//    @Override
//    protected void onPause() {
//        super.onPause();
//        //在activity执行onPause时执行mMapView.onPause ()，暂停地图的绘制
//        mMapView.onPause();
//    }
//
//    @Override
//    protected void onSaveInstanceState(Bundle outState) {
//        super.onSaveInstanceState(outState);
//        //在activity执行onSaveInstanceState时执行mMapView.onSaveInstanceState (outState)，保存地图当前的状态
//        mMapView.onSaveInstanceState(outState);
//    }
//
//    @Override
//    protected void onDestroy() {
//        super.onDestroy();
//        //在activity执行onDestroy时执行mMapView.onDestroy()，销毁地图
//        mMapView.onDestroy();
//        if (null != mLocationClient) {
//            mLocationClient.onDestroy();
//        }
//    }
//
//    /**
//     * 对marker标注点点击响应事件
//     */
//    @Override
//    public boolean onMarkerClick(Marker marker) {
//        if (null != mAmap) {
//            growInfo(marker);
//        }
//        return false;
//    }
//
//    private void growInfo(Marker marker) {
//        if (marker.isInfoWindowShown()) {
//            marker.hideInfoWindow();
//        }
////        marker.setVisible(false);
//        if (null != marker) {
//            Animation animation = new ScaleAnimation(0, 1, 0, 1);
//            animation.setInterpolator(new LinearInterpolator());
//            //整个移动所需要的时间
//            animation.setDuration(1000);
//            //设置动画
//            marker.setAnimation(animation);
//            //开始动画
//            marker.startAnimation();
//        }
//    }
//
//    /**
//     * 监听点击infowindow窗口事件回调
//     */
//    @Override
//    public void onInfoWindowClick(final Marker marker) {
//        View mView = LayoutInflater.from(aty).inflate(R.layout.popup_map, null);
//        TextView mName = (TextView) mView.findViewById(R.id.id_oil_name);
//        mName.setText(marker.getTitle());
//        mView.findViewById(R.id.id_go_to_heer).setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                //导航
//                routeNavigation(marker.getTitle());
//            }
//        });
//        DialogUtils.showDrawPop(mRootView, mView);
//    }
//
//    /**
//     * 监听自定义infowindow窗口的infowindow事件回调
//     */
//    @Override
//    public View getInfoWindow(Marker marker) {
//        return null;
//    }
//
//    /**
//     * 监听自定义infowindow窗口的infocontents事件回调
//     */
//    @Override
//    public View getInfoContents(Marker marker) {
//        return null;
//    }
//
//    /**
//     * 路线导航
//     */
//    private void routeNavigation(String address) {
//        if (!mSaveOilInfos.isEmpty()) {
//            for (MapModel model : mSaveOilInfos) {
//                if (TextUtils.equals(model.getTitle(), address)) {
//                    Intent intent = new Intent(aty, MapRouteAty.class);
//                    intent.putExtra(IntentKey.Location.KEY_LATITUDE, model.getLatitude());
//                    intent.putExtra(IntentKey.Location.KEY_LONGITUDE, model.getLongitude());
//                    intent.putExtra(IntentKey.Location.KEY_ADDRESS, model.getAddress());
//                    showActivity(aty, intent);
//                }
//            }
//        }
//    }
//
//    /**
//     * 地图加载成功
//     */
//    @Override
//    public void onMapLoaded() {
//        //获得地图的信息
////        ((MapPresenter) presenter).getOilAddress();
//        List<MapModel> maps = ((MapPresenter) presenter).getCacheData();
//        updateView(maps);
//    }
//
//    /**
//     * 激活定位
//     */
//    @Override
//    public void activate(OnLocationChangedListener onLocationChangedListener) {
//        this.mLocationListener = onLocationChangedListener;
//        if (null == mLocationClient) {
//            //初始化定位参数
//            mLocationOption = new AMapLocationClientOption();
//            //设置为高精度定位模式
//            mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);
//
//            //初始化定位
//            mLocationClient = new AMapLocationClient(this);
//            //设置定位回调监听
//            mLocationClient.setLocationListener(this);
//            //设置定位参数
//            mLocationClient.setLocationOption(mLocationOption);
//            // 此方法为每隔固定时间会发起一次定位请求，为了减少电量消耗或网络流量消耗，
//            // 注意设置合适的定位时间的间隔（最小间隔支持为2000ms），并且在合适时间调用stopLocation()方法来取消定位请求
//            // 在定位结束后，在合适的生命周期调用onDestroy()方法
//            // 在单次定位情况下，定位无论成功与否，都无需调用stopLocation()方法移除请求，定位sdk内部会移除
//            mLocationClient.startLocation();//启动定位
//        }
//    }
//
//    /**
//     * 停止定位
//     */
//    @Override
//    public void deactivate() {
//        mLocationListener = null;
//        if (mLocationClient != null) {
//            mLocationClient.stopLocation();
//            mLocationClient.onDestroy();
//        }
//        mLocationClient = null;
//    }
//
//    /**
//     * 定位成功后回调函数
//     */
//    @Override
//    public void onLocationChanged(AMapLocation aMapLocation) {
//        if (null != mLocationListener && null != aMapLocation) {
//            if (null != aMapLocation && aMapLocation.getErrorCode() == 0) {
//                Log.d("huangqiang", "MAPAty---------定位成功");
//                //显示系统小蓝点
//                mLocationListener.onLocationChanged(aMapLocation);
//                mRecordAddress = aMapLocation.getStreet();
//                mRecordLat = aMapLocation.getLatitude();
//                mRecordLong = aMapLocation.getLongitude();
//            } else {
//                //定位失败
//                ToastUtil.showToast("定位失败");
//            }
//        }
//    }
}
